﻿using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Linq;
using System.Security.AccessControl;
using System.Security.Cryptography.X509Certificates;
using System.Text;
using System.Threading.Tasks;

namespace 二项查找
{
    //public class da
    //{
    //    static void Main(string[] args)
    //    {
    //        int[] at = new int[] {-8, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,11,12,15,16};
    //        int a = 10;
    //        int? c = vv(at, a);
    //        if (c != null)
    //        {
    //            Console.WriteLine(c);
    //        }
    //        else
    //        {
    //            Console.WriteLine("没有找到目标值");
    //        }
    //    }

    //    public static int? vv(int[] arr, int target)
    //    {
    //        int left = 0;
    //        int right = arr.Length - 1;

    //            while(left<=right)
    //            {
    //            int mid = left + (right - left) / 2;
    //                if (target < arr[mid]) right = mid-1;
    //                else if (target > arr[mid]) left = mid+1;
    //                else return arr[mid];// 找到目标值直接返回
    //            }            
    //        return null;
    //    }

    //}

    //public class MyClass
    //{


    //    public static int i=0;

    //    public static void Main(string[] args)
    //    {           
    //        for (i = 0; i <= 10; i++)
    //        {
    //            Console.WriteLine("循环里边"+i);
    //        }
    //        Console.WriteLine("循环外边"+i);
    //    }
    //}

    //public class da
    //{
    //    static void Main(string[] args)
    //    {
    //        string[] dd;
    //        string df;
    //        df = Console.ReadLine();
    //        dd = df.Split(' ');// 按空格分割

    //        for(int i = 0; i < dd.Length; i++)
    //        {
    //            Console.Write(":"+dd[i]+"\n");
    //        }

    //        Console.ReadKey();
    //        string ff = "fd";
    //        ff += string.Join("<->", dd);
    //        Console.WriteLine(ff);

            
    //    }
    //}

    //public class fr
    //{
    //    public static Dictionary<int, string> d = new Dictionary<int, string>();

    //    public static Func<int, string, bool> func;

    //    public delegate void da(ref int a, int b);

    //    public static void Main(string[] args)
    //    {
    //        d = new Dictionary<int, string>()
    //        {
    //            {1,"a"},
    //            {2,"b"},
    //            {3,"c"},
    //        };

    //        foreach(var ff in d)
    //        {
    //            Console.WriteLine(ff.Key + ":" + ff.Value);
    //        }

    //        d.Add(4, "d");
    //        d.Remove(2);

    //        foreach (var ff in d)
    //        {
    //            Console.WriteLine(ff.Key + ":" + ff.Value);
    //        }
    //        int? f = 0;
    //        foreach(var ff in d)
    //        {
    //            if (ff.Value == "d")
    //            {
    //                f = ff.Key;
    //                break;
    //            }
    //        }

    //        Console.WriteLine(f);

    //        func = (a,b) =>
    //        {
    //            Console.WriteLine(a + ":" + b);
    //            return true;
    //        };
    //        bool K = func.Invoke(1, "f");
    //        Console.WriteLine(K);

    //        da da = new da(ff);
    //        da += (ref int a,int b) =>
    //        {
    //            Console.WriteLine(a - b);
    //        };
    //        int g = 3;
    //        da.Invoke(ref g, 4);
    //        da = new da(ff);
    //        da += (ref int a,int b) =>
    //        {
    //            Console.WriteLine(a * b);
    //        };
    //        int g1 = 3;
    //        da.Invoke(ref g1, 4);
    //    }

    //    public static void ff(ref int a,int b)
    //    {
    //        Console.WriteLine(a+b);
    //        return;
    //    }

    //}

    public class adaw
    {

        public delegate void dx(int a);

        public static string dd = null;

        public static Dictionary<string, da> d = new Dictionary<string, da>();

        public static int[] ff1 = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

        public static int fa = 2;

        public class da
        {
            public int 属性1 { get; set; }
            public string 属性3 { get; set; }
            public Dictionary<string, Point> 属性2 { get; set; }
        }

        public class Point
        {
            public int X { get; set; }
            public int Y { get; set; }
            public int Z { get; set; }
        }
        

        public static void ff<Tv>(Tv[] e, dx f)
        {
            foreach (var item in e)
            {
                Console.WriteLine(item);
            }
            f(fa);
        }



        public static void Main(string[] args)
        {
            string? ee = null;
            dx dx = new dx(v => { v = v / 2; Console.WriteLine(v); });
            ff(ff1, dx);
            Console.ReadKey();
            dd = "123";
            Console.WriteLine(dd);
        }
    }

}
